/*
 * @Author: xiaoqi
 * @Date: 2024-09-02 22:45:09
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2024-09-06 22:32:23
 * @Description: 请填写简介
 */
#include "user_lptim.h"

#include "air001_ll_Core_Board.h"
#include "air001xx_ll_rcc.h"
#include "air001xx_ll_bus.h"
#include "air001xx_ll_system.h"
#include "air001xx_ll_cortex.h"
#include "air001xx_ll_utils.h"
#include "air001xx_ll_pwr.h"
#include "air001xx_ll_gpio.h"
#include "air001xx_ll_lptim.h"



/**
  * @brief  应用程序入口函数.
  * @retval int
  */
int lptim_test(void)
{
  /* 使能LPTIM时钟 */
  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_LPTIM1);
  
  
  /* 配置并开启LPTIM */
  APP_ConfigLPTIMOneShot();
  
  while (1)
  {
  }
}




/**
  * @brief  配置LPTIM单次模式
  * @param  无
  * @retval 无
  */
void APP_ConfigLPTIMOneShot(void)
{

  /* 使能LPTIM时钟 */
  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_LPTIM1);

  /* 配置LPTIM */
  /* LPTIM预分频器64分频 */
  LL_LPTIM_SetPrescaler(LPTIM1,LL_LPTIM_PRESCALER_DIV1);
  
  /* LPTIM计数周期结束更新ARR */
  LL_LPTIM_SetUpdateMode(LPTIM1,LL_LPTIM_UPDATE_MODE_ENDOFPERIOD);
  
  /* 使能ARR中断 */
  LL_LPTIM_EnableIT_ARRM(LPTIM1);
  
  /* 使能LPTIM */
  LL_LPTIM_Enable(LPTIM1);
  
  /* 配置重装载值：62500 */
  /* 8000000/64/625 = 200Hz */
  LL_LPTIM_SetAutoReload(LPTIM1,670);
  
  /* 开启单次模式 */
  LL_LPTIM_StartCounter(LPTIM1,LL_LPTIM_OPERATING_MODE_ONESHOT);
  
  /* 使能NVIC请求 */
  NVIC_EnableIRQ(LPTIM1_IRQn);
  NVIC_SetPriority(LPTIM1_IRQn,0);
}

/**
  * @brief  LPTIM ARR中断回调函数
  * @param  无
  * @retval 无
  */
void APP_LPTIMCallback(void)
{
  /* 翻转LED */
  //GPIO_Toggle(100);
  USER_PWM();
  /* 开启单次模式 */
  LL_LPTIM_StartCounter(LPTIM1,LL_LPTIM_OPERATING_MODE_ONESHOT);
}



